+ the specification of software on our PC +

Warning

  • Directly use our Sikulix codes on a computer other than ours will fail with no doubt for many reasons. Please refers to “Insstruction of Sikulix code.html”.

+ workflow of our automation platform +

step-by-step tutorial

1 prepare sample slide

  • prepare the cell or tissue culture on a coverslip.

  • mount it with 1 μM biotin-benzophenone in 50:50 DMSO:water and store in dark.

    • the biotin-benzophenone is photo-active under two-photon excitation at 720 nm

2 photo-labeling on microscope

2.1 load the slide on microscope (we use zeiss LSM 880) and use 25x oil immersion lens.

2.2 start the applications on Windows:

  • ZEN Black; imageJ/Fiji; Spyder; Sikulix; Chrome

  • the layout on our PC screen.

    • the image above shows the GUI of ZEN Black.

      • ZEN Black GUI occupies the whole screen all the time.

      • other applications either sit on its top temporarily or hide in the background.

    • block 1: choose a multi-dimensional experiment

    • block 2: set up the lasers required by the experiment.

      • i.e. 488 nm laser for AF 488 dye; 720 nm for two-photon labeling

    • block 3: setup the autofocus

    • block 4: the panel to load multiple positions

      • add: add a location
      • save: save a position file “.pos”
      • load: load a position file “.pos”

    • block 5: the Windows task bar at the bottom shows all the active applications

    • the image above shows block 6 in ZEN Black.

  • the GUIs of applicaitons other than ZEN

    • the image above shows:

    • block 7: Sikulix GUI or spyder GUI

      • one brought to the front of Zen Black GUI at a time

      • Sikulix

      • Spyder

    • block 8: imageJ

    • block 9: STOMP macro GUI

  • Warning: the blocks 2,3,4 in ZEN Black must not be blocked. Otherwise, the Sikulix code will crash.

2.3 setup the tiles

  • the workflow

    • please refer to the video

    • 2.3.1 find the boundary points along the coverslip.

      • move along the edge of the coverslip. Stop at a location and manually focus on the sample.

      • add the location to the ‘Positions’ Panel.

      • keep going until 6~8 locations are collected.

      • save the boundary position list.

    • 2.3.2. calculate the tiles within the shape refined in the boundary points.

      • call the script “tileScanConvexHullz_split.py” in Spyder

        • line 12: enter the path of the pre-saved “.pos” file of the boundary list

        • line 14: enter value of the tile size, always NOT smaller than of the scale of field of view. i.e. 25x lens on our LSM 880, the size of each field is 340.1 μm.

        • line 16: the maximum numbers of tiles can be written into a position file.

          • ZEN Black may freeze when a positioin file contains more than 120 positions is loaded.

      • run the script “tileScanConvexHullz_split.py” after the parameters are entered.

      • position files are generated: “tilePos-1.pos”, “tilePos-2.pos”, “tilePos-3.pos”,…

      • the information of position files are printed out in the panel “iPython console”.

      • the position file is loaded into Zen Black in the “Positions” panel

    • 2.3.3. setup the imaging parameters

      • load a position file, move to a tile position, then tune the laser powevr, receiver gain, and etc. to get an image with decent signal.

      • test 1~2 tiles. Then the imaging parameters are settled.

      • acquire images with 512 x 512 pixel-by-pixel format.

      • warning: close all active images in Zen Black after the test.

    • 2.3.4. Mask generation in imageJ/Fiji

      • install the Fiji macro used for mask generation

        • “self.ijm” and “donut.ijm” are provided

      • For instance, the macro functions are shown as below after “donut.ijm” is loaded

      • test the processing of images acquired in step 2.3.3. Make sure the ijm macro works properly.

        • Warning: after test, close all active images and windows except the console of imageJ/Fiji by calling the macro, clearWindows.

2.4 automation with the Sikulix code

  • 2.4.1. set up the input parameters of Sikulix code

    • call the script “stp_call_oneChannel.Sikulix”

    • enter the parameters obtained in step 2.3.2 to the script.

    • please refer to instruction_of_Sikulix_code.html.

  • 2.4.2. run the sentinel script “checkFreezingCode.py” in Spyder

    • this script will monitor the Sikulix and report a frozen status if there is.

    • Minimize the window of Spyder when the run starts.

    • The tabs of the python scripts are shown as below:

  • 2.4.3. Load the STOMP macro if it is not open yet.

  • 2.4.4. Open the web-portal of Gmail in Chrome

    • Minimize Chrome GUI before running Sikulix

  • 2.5 run the Sikulix code

    • please refer to this video of automation

    • once the run starts, the Sikulix window will disappear, so does its icon at the task bar at the bottom of Windows desktop

    • Note: the Sikulix IDE will re-appear when it is interrupted and forced to quit.

  • Warning: Trouble shooting

    • if Sikulix is forced to stop, try to fix the exceptions by learning the error message.

    • It is possible for other exceptions to occur, we have dealt with the exceptions we have seen so far in current code.

    • refer to the exceptions that has been dealt with in “instruction_of_Sikulix_code.html”.

  • resume the Sikulix run

    • go through the step 2.3 to 2.4 to ensure it is ready for Sikulix automation.

    • set the tile where the automation should be resumed in “stp_call_oneChannel.Sikulix”

    • For instance, resume STOMP from position file #2 and tile position #51, enter 1 and 50, respectively for position file and tile position as below in the Sikulix code.

    • the sikulix code follows a syntax that an n-element array spans from 0 to n-1.

3 count the pixels STOMPed to estimate the amount of tagged proteins.

  • Note 3.1: the images and log files are organized into the folders by the order of the position files generated at the step 2.3.2.

  • 3.1. run the python code “TotalPixels_allLogs.py” in Spyder.

    • line 15: enter the path of the parent folder generated at step 2.4.1.

    • the script will iterate through all its subfolder and collect and summarize the total pixels.

  • Note 3.2: Typically, labeling 4 - 5 million pixels with mask resoution: 512x512 pixel-by-pixel under 25x lens should render sufficient proteins for one sample for Mass Spec submission.

    • Approximately four days per sample on the microscope is required to label adequate proteins.

4 Lift the STOMPed coverslip and store it

  • 4.1 unload the slide from the microscope once the STOMPing is finished. Clean the immersion oil With a cotton swab, then soak the slide in the pure water for more than half an hour on a shaker.

  • 4.2 gently peel off the nail polish seal around the coverslip, and transfer the coverslip to a parafilm with the sample side up.

  • 4.3 clean the free affinity tag off the coverslip

    • add 1 mL 50:50 DMSO:water to the coverslip, and asperate the liquid after 5 min. Repeat this 3 times.

    • add 1 mL water to the coverslip, and asperate the liquid after 5 min. Repeat this 3 times.

    • Tap the coversllip on a paper to get rid of excess water to prevent too much ice crystal forms when it is stored in the freezer. Typically, store the coverslip in -20 to -30 degree C freezer. The sample is stored until preparing the lysate for Mass Spec analysis.

  • Note: we do step 4 immediately after STOMPing one at a time.